const { app, BrowserWindow, clipboard } = require('electron')
const path = require('path')

let win

app.whenReady().then(() => {
  /*---------- 获取支持的格式 ----------*/
  const formats = clipboard.availableFormats()
  console.log('formats', formats)

  /*---------- 判断格式是否某种支持 ----------*/
  // 感觉 API 有问题，怎么都返回 false 呢？是用的方法不对吗？
  const h1 = clipboard.has('public/utf8-plain-text')
  const h2 = clipboard.has('text/plain')
  const h3 = clipboard.has('text')
  console.log('has', { h1, h2, h3 })

  /*---------- 读取剪贴板 ----------*/
  const r1 = clipboard.readText()
  const r2 = clipboard.read('public/utf8-plain-text')
  const r3 = clipboard.readRTF()
  const r4 = clipboard.readHTML()
  console.log('read', { r1, r2, r3, r4 })

  /*---------- 写入剪贴板 ----------*/
  clipboard.writeText('写入文本')
  clipboard.writeHTML('<p style="color: red">红色</p>')
  clipboard.writeRTF('{\\rtf1\\ansi{\\fonttbl\\f0\\fswiss Helvetica;}\\f0\\pard\nThis is some {\\b bold} text.\\par\n}')

  /*---------- 清空剪贴板 ----------*/
  clipboard.clear()

  win = new BrowserWindow({
    width: 600,
    height: 500,
    webPreferences: {
      preload: path.join(__dirname, '../preload/index.js'),
      sandbox: false, // 如果开启了沙箱模式（默认开启），在 preload 中引用 clipboard 会报错
    },
  })
  win.loadFile(path.join(__dirname, '../renderer/index.html'))
  win.webContents.openDevTools({ mode: 'bottom' })
})
